--[[
    @Author       : GGELUA
    @Date         : 2022-04-08 10:57:22
Last Modified by: GGELUA
Last Modified time: 2023-07-30 21:33:33
--]]
local 功能给予 = 多开数据[多开数据.当前].__UI界面.窗口层:创建我的窗口("功能给予",0,0,374,408)
local 当前 = 多开数据.当前
function 功能给予:初始化()
    __置窗口坐标(self)
    local nsf = require('SDL.图像')(374,408)
    if nsf:渲染开始() then
        置窗口背景("系统处理",0,12,362,395,true):显示(0,0)
        取灰色背景(0,0,340,280,true):显示(15,50)
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

function 功能给予:打开(数据)
    self:置可见(true)
    self.数据=数据
    self:重置(数据)
end

function 功能给予:重置(数据)
    local nsf = require('SDL.图像')(374,408)
    if nsf:渲染开始() then
        置窗口背景(lx,0,12,362,395,true):显示(0,0)
        取灰色背景(0,0,340,280,true):显示(15,50)
        nsf:渲染结束()
    end
    self.图像 = nsf:到精灵()
    self.道具网格:置物品(多开数据[当前].__主控.道具列表)
    self.选中类型 = 数据.编号 and 数据.道具.道具[数据.编号].名称 or 数据.名称
end

local 道具网格 = 功能给予:创建网格("道具网格",20,60,326,260)

function 道具网格:初始化()
    self:创建格子(55,55,14,13,4,5)
end

function 道具网格:左键弹起(x, y, a, b, msg)
    if  功能给予.选中 and  self.子控件[功能给予.选中]._spr and  self.子控件[功能给予.选中]._spr.物品 then
        self.子控件[功能给予.选中]._spr.确定 = nil
    end
    if self.子控件[a] and self.子控件[a]._spr and self.子控件[a]._spr.物品  then
        local x,y = self.子控件[a]:取坐标()
        local w,h = self.子控件[a]:取宽高()
        self.子控件[a]._spr:详情打开(520,86,w,h)
        self.子控件[a]._spr.确定 = true
        功能给予.选中 = a
    end
end

function 道具网格:置物品(数据,bh)
    if not bh then
        for i = 1,#道具网格.子控件 do
            local lssj = __商店格子.创建(当前)
            lssj:置物品(数据[i],"功能给予")
            道具网格.子控件[i]:置精灵(lssj)
        end
    else
        local lssj = __商店格子.创建(当前)
        lssj:置物品(数据,"功能给予")
        道具网格.子控件[bh]:置精灵(lssj)
    end
end

local 关闭 = 功能给予:创建我的按钮(__res:getPNGCC(1,401,0,46,46),"关闭",320,0)

function 关闭:左键弹起(x,y,msg)
    功能给予:置可见(false)
end


local 确定按钮 = 功能给予:创建我的按钮(__res:getPNGCC(3,2,507,124,41):拉伸(123,41),"确定按钮",115,350,"确定")

function 确定按钮:左键弹起(x,y,msg)
    local item = ((功能给予.道具网格.子控件[功能给予.选中] or {})._spr or {}).物品
    if 功能给予.选中 == nil or item == nil then
        多开数据[当前].__UI弹出.提示框:打开('#Y请先选中需要操作的物品')
        return
    end
    if 功能给予.选中类型=="神兵图鉴" or  功能给予.选中类型=="灵宝图鉴" or 功能给予.选中类型=="灵饰图鉴" or 功能给予.选中类型=="兵器谱" or 功能给予.选中类型=="堪察令" then
        if item.鉴定 then
            多开数据[当前].__UI弹出.提示框:打开('#Y该道具已经鉴定过了')
            return 
        elseif item.总类 ~= 2 then
            多开数据[当前].__UI弹出.提示框:打开('#Y只可以鉴定装备')
            return 
        else
            if 功能给予.选中类型=="神兵图鉴" then
                if item.分类 == 3 or item.分类 == 4 then
                    if item.等级 > 功能给予.数据.道具.道具[功能给予.数据.编号].子类 then
                        多开数据[当前].__UI弹出.提示框:打开("#Y/神兵图鉴的等级过低无法鉴定该装备")
                    else
                        发送数据(当前,4510,{序列1=功能给予.数据.编号,序列2=功能给予.选中})
                    end
                else
                    tp.提示:写入("#Y/神兵图鉴只能鉴定武器和衣服")
                end
            elseif 功能给予.选中类型=="灵宝图鉴" then
                if item.分类 == 1 or item.分类 == 2 or item.分类 == 5 or item.分类 == 6 then
                    if item.等级 > 功能给予.数据.道具.道具[功能给予.数据.编号].子类 then
                        多开数据[当前].__UI弹出.提示框:打开("#Y/神兵图鉴的等级过低无法鉴定该装备")
                    else
                        发送数据(当前,4510,{序列1=功能给予.数据.编号,序列2=功能给予.选中})
                    end
                else
                    tp.提示:写入("#Y/灵宝图鉴只能鉴定饰品")
                end
            elseif 功能给予.选中类型=="灵饰图鉴" then
                if item.灵饰 then
                    if item.等级 > item.子类 then
                        多开数据[当前].__UI弹出.提示框:打开("#Y/神兵图鉴的等级过低无法鉴定该装备")
                    else
                        发送数据(当前,4510,{序列1=功能给予.数据.编号,序列2=功能给予.选中})
                    end
                else
                    tp.提示:写入("#Y/灵饰图鉴只能鉴定灵饰")
                end
            end
        end
    elseif 功能给予.选中类型=="仙灵丹" or  功能给予.选中类型=="无级别宝珠" or 功能给予.选中类型=="装备特技宝珠" then
        if 功能给予.选中类型=="仙灵丹" then
            if item.灵饰 then
                if item.赐福 == nil or item.赐福.总类 == nil then
                    local 回调处理 = function (i,选项)
                        if 选项[i] == "确定" then
                            发送数据(当前,4518,{序列1=功能给予.数据.编号,序列2=功能给予.选中})
                        end
                    end
                    多开数据[当前].__UI界面.窗口层.对话栏:打开({模型="普陀_接引仙女",名称="梦幻精灵",对话="未被赐福的装备只有5%几率添加是否添加赐福，你确定要添加么？",选项={"确定","我再考虑考虑"},回调处理=回调处理,选中名称=""})
                else
                    发送数据(当前,4518,{序列1=功能给予.数据.编号,序列2=功能给予.选中})
                end
            else
                tp.提示:写入("#Y/灵饰图鉴只能鉴定灵饰")
            end
        elseif 功能给予.选中类型=="无级别宝珠" then
            if item.总类 ~= 2 then
                多开数据[当前].__UI弹出.提示框:打开('#Y只可以给装备镶嵌')
                return 
            end
            if item.特效 then
                local 回调处理 = function (i,选项)
                    if 选项[i] == "确定" then
                        发送数据(当前,4519,{序列1=功能给予.数据.编号,序列2=功能给予.选中})
                    end
                end
                多开数据[当前].__UI界面.窗口层.对话栏:打开({模型="普陀_接引仙女",名称="梦幻精灵",对话="你确定要改变该装备的特效么？",选项={"确定","我再考虑考虑"},回调处理=回调处理,选中名称=""})
            else
                发送数据(当前,4519,{序列1=功能给予.数据.编号,序列2=功能给予.选中})
            end
        elseif 功能给予.选中类型=="无级别宝珠" then
            if item.总类 ~= 2 then
                多开数据[当前].__UI弹出.提示框:打开('#Y只可以给装备镶嵌')
                return 
            elseif item.灵饰 then
                多开数据[当前].__UI弹出.提示框:打开('#Y灵饰无法附加特技')
                return 
            end
            if item.特技 then
                local 回调处理 = function (i,选项)
                    if 选项[i] == "确定" then
                        发送数据(当前,4520,{序列1=功能给予.数据.编号,序列2=功能给予.选中})
                    end
                end
                多开数据[当前].__UI界面.窗口层.对话栏:打开({模型="普陀_接引仙女",名称="梦幻精灵",对话="你确定要改变该装备的特技么？",选项={"确定","我再考虑考虑"},回调处理=回调处理,选中名称=""})
            else
                发送数据(当前,4520,{序列1=功能给予.数据.编号,序列2=功能给予.选中})
            end
        end
    elseif 功能给予.选中类型=="坐骑修炼" then
        if item.总类 ~= 2 then
            多开数据[当前].__UI弹出.提示框:打开('#Y只可以提供装备修炼')
            return 
        end
        发送数据(当前,3784,{道具格子=功能给予.选中,rzm=功能给予.数据.认证码,类型="修炼"})
    end
    功能给予:置可见(false)
end